package com.xxx.springboot.distributedsession;

/**
 * 分布式session缓存引擎接口
 */
public interface SessionCacheEngine {

    /**
     * 缓存中是否包含给定的key
     *
     * @param key
     * @return
     */
    boolean containsKey(String key);

    /**
     * 根据KEY获取对象
     *
     * @param key
     * @return
     */
    Object get(String key);

    /**
     * 根据KEY删除对应的object
     *
     * @param key
     */
    void remove(String key);

    /**
     * 设置KV
     *
     * @param key
     * @param value
     * @param expire 过期时间，秒
     * @return
     */
    boolean put(String key, Object value, long expire);

    /**
     * 重置超时时间
     *
     * @param key
     * @param expire
     */
    void resetExpire(String key, long expire);
}
